Каждый вопрос заслуживает отдельного обсуждения, а на все стало лень ответ печатать, когда начал.
Печатать реально долго, легче было реализовать примеры в карте:
Кроме последнего пункта, его нужно персонально рассматривать, так как игра не подразумевает использование для юнита двух списков. Например, можно наполнить список построек у юнита всеми зданиями, часть из которых блокировать при открытии одного списка и разблокировать при открытии второго, но это подходит, когда один рабочий. Можно сделать второй список из книги заклинаний, куда добавлены способности на основе игрушечных строений, чтобы было видно карту пути и всё такое, но там для них используется один приказ, то есть всегда одинаковое здание будет при нажатии на любую способность, а ещё нет стоимости золота и дерева, что тоже придётся как-то ваять триггерно. Можно перевоплощать юнита при смене списка в другого, но там тоже сложности, не помню точно какие, вроде бы связаны с расой, так как все строят по-разному.
С точкой сбора всё просто. Способность у игрока не заблокировать, потому нужно забрать её у всех зданий, которые есть на карте, либо будут построены.
Группа из максимум 9 юнитов работает немножко коряво, ранее мы с PT153 находили какой-то вариант, чтобы работало быстро, но лень пользоваться поиском. Вроде каждую 0.01 секунду проверялось количество выбранных юнитов, лишние удалялись из выбора.
Чтобы не было очереди, пришёл в голову лишь вариант с апгрейдом здания. Но у меня реализован просто пример для одного конкретного здания, а для нескольких абстрактных зданий нужно делать текстовым триггером, который будет для каждого здания запускать локальный таймер на нужное время и добавлять анимационный текстаг work. По отмене апгрейда, либо истечению таймера анимационный тег удаляется и создаётся воин, к которому привязывается соответствующий звук. Но есть и другие варианты, типа создавать внутри здания другое, которое реально будет производить юнитов, когда заказал апгрейд, там иная реализация. И не упомянул про затрачиваемые ресурсы. Потребуется забирать/возвращать часть ресурсов при отмене апгрейда.
На примере триггеров и фиолетовых строк в редакторе объектов смотри, как сделано улучшение Бугая в Дренорского бугая.
Конечно, мог бы сделать MUI триггер на GUI для отсутствия очереди, но это было бы громоздко и в техническом смысле уродливо. производящие здания заносились бы в массив, для которого будет массив таймеров, которые будут заноситься в виде событий на истечение таймера в другой триггер, а точнее будет несколько массивов таймеров, по максимальному числу тренируемых юнитов в любом производящем здании.
function BuyItem takes unit FromShop,integer ItemID,unit ToUnit returns boolean
if IssueNeutralTargetOrder(GetOwningPlayer(ToUnit), FromShop, "smart", ToUnit) or IssueTargetOrder(FromShop, "smart", ToUnit) then
return IssueNeutralImmediateOrderById(GetOwningPlayer(ToUnit), FromShop, ItemID) or IssueImmediateOrderById(FromShop, ItemID)
endif
return false
endfunction
function Trig_Pokupka_Conditions takes nothing returns boolean
if ( not ( GetTriggerUnit() == gg_unit_Othr_0049 ) ) then
return false
endif
return true
endfunction
function Trig_Pokupka_Actions takes nothing returns nothing
call BuyItem(ТВОЙ_МАГАЗ, ИД_СВИТКА, gg_unit_Othr_0049)
endfunction
===========================================================================
function InitTrig_Pokupka takes nothing returns nothing
set gg_trg_Pokupka = CreateTrigger( )
call TriggerRegisterUnitInRangeSimple( gg_trg_Pokupka, 256, gg_unit_ngme_0056 )
call TriggerAddCondition( gg_trg_Pokupka, Condition( function Trig_Pokupka_Conditions ) )
call TriggerAddAction( gg_trg_Pokupka, function Trig_Pokupka_Actions )
endfunction
Ван Рок, ты задал много хороших вопросов и если почитаешь статьи о Jass, то узнаешь на них ответ. В представленном виде это не триггер с условиями и ивентом, это просто функция, которую можно вызвать.
TheBlakeRed, сорь что не ответил сразу, в бане сидел, в общем у тебя вместо включения триггера на вход - его выключение, а портал у тебя не тот стоял в условиях, равкоды смотреть надо, у людей во вкладке кампания такой портал, а у тебя нейтралы - сражения - ашенвальский портал, который как здание выглядит
в общем я поправил и добавил ещё один вариант со стандартным порталом, тебе нужно просто разблокировать одни функции на портал и заблокировать/удалить другие, думаю ты разберёшься
Переключающий юнит - это triggering unit?
Кто делал этот перевод?
Вместо triggering unit для цикла нужен picked unit. Как это в русских триггерах - хз.
BrandY TM, моста нет, есть область, при входе в которую фиксируется абсолютная высота юнитов. В зависимости от высоты определяется проходимость для каждого конкретного юнита (эмулируется не очень просто, но тем не менее).
Ну и само собой разумеется, есть метод с платформами и переключателями.
ххххххх
Ну дык.
Ты пикаешь всех юнитов вокруг позиции кастера.
В т.ч. кастера.
Он же не враг сам себе)
так что выполнится оба действия могут)
и если там дамми есть - в ту же пачку, могут вызвать срабатывание.
Я фильтрую дамми по левелу, лвл дамми ставлю 0.
у парня проблемы с алгоритмом, в какой вселенной 0.01 * 10 не 0.1?
В компьютерной. И да, 0.01 * 10 тоже может быть не равно 0.01 + ... + 0.01. Потому что складываются и умножаются real по-разному. Hate, надо просто использовать целочисленные, или пользоваться ==, в JASS == округляет числа для сравнения (!= не округляет).
Пороверил разные варианты, сразу упомяну, что с целочисленными всё огонь, просто какие-то другие воспоминания с ними всплывали. PT153, сначала не понял, зачем мне твоя строчка, она всего лишь выдавала 0.1 вместо 0.100, но тестировал разные варианты и всё прояснилось. Если задавать шаг 1.0, то всё исправно считается до 10.0, если задавать шаг 0.2, то всё считается до 2.2 и отображается ровно, но если сделать шаг 1.01, то вот тут и появляется то, ради чего ты эту строчку дал.
Именно с дробной частью косяк, и теперь не знаю как выбрать лучший ответ, по идее у тебя в каждом комментарии полезная информация. Просто объединил их в итоге.
Ну я был бы удивлен если бы код работал даже в сингле, гуи карта, много утечек, куча переодиков, так на первый взгляд код не учитывает что игроков будет много и все они что то будут делать. Так же возможны десинхи из-за кривого кода, это и на гуи бывает... Огромное кол-во вейтв и циклов с вейтами, это сразу убирайте - в мультиплеере это работать не будет.
Увы конечно интересная задумка карты, но реализация очень слабая и на игру по сети не претендует, более грамотно продумывайте код и не плодите утечки, то их у вас овер дофига что равно игра закроется с фаталом после превышения лимита памяти.
Собственно путем проб и ошибок нашел решение.
В общем для "дома вождей" добавил условие. При котором дом вождей строится только если. Дом вождей = 0, Крепость = 0, Дворец = 0. У меня названия другие, но для понятности написал так. Скрин ниже. Вдруг кому то пригодится :D
Если падает скрипт с AI (файл .ai это обычный код на Jass), то игра видимо ничего не показывает, но и ИИ не работает. То есть, чтобы узнать из-за чего, надо продокументировать common.ai нативки в 1.26, 1.29 и потом посмотреть, в чём отличия и что игре не нравится.
Можно, конечно, просто сравнить common.ai от 1.26 и 1.29, может используются функции, которых не было. Тогда всё относительно просто.
Событие - постройка завершена
Действие: Если тип юнита (построенное здание) = стена,
то установить переменую-точку = позиция (построенного здания),
удалить (построенное здание)
создать декорацию типа "Стена-декорация" в точке-переменной
удалить точку
Пишу с работы, редактора под рукой нет. Прошу за ошибки и неточности простить))
Ошибкой было перемещать ресурсы при 1 уровнем проекта без менеджера проектов, который за это отвечает
Теперь придётся все снова заливать
Задача для 1 уровень проекта - только составить главную, потом нужно ждать дальнейшие задания уже от менеджера проекта, который выдаст 2 уровень и разрешит переместить ресурсы
DarkRaven Best, в картах есть 2 файла с кодом
j и wct
wct содержит тот код который отображается в редакторе
j файл содержит окончательный код который и работает в игре(с переменными, генерируемыми функциями и результатом гуи)
проги для взлома карт тупо перемещает код из j файла в wct (в том числе и генерируемые функции наподобие main)
при попытке сохранения карты код из wct перемещается в j и генерируются системные функции (например main)
но т.к. генерируемые функции уже перенеслись в j из wct получается повторение функций( например main из wct + сгенерированный main)
если же удалить/переименовать лишние функции в редакторе то функции будут сгенерированны не правильно (например в main будет отсутствовать инициализация библиотек)
для того чтобы всё нормально работало надо открыть карту в mpq редакторе и ручками править wct файл вычищая из него всё лишнее
для этого надо хорошо знать джасс
Вджасс это дополнение к обычному джассу, у себя ты можешь видеть строки объявления библиотеки, продвинутые комментарии и статические константные переменные
В том и дело что ОТВЕТА - НЕТ.Способность я НЕ кастую.Я проверяю - есть ли она у героя, и какого она уровня. Мне нужна ПАССИВНАЯ, способность. В данном случае моя способность блокирует часть урона, в зависимости от уровня, она не является пустышкой. Всё. Теперь я в тригере делаю проверку - что способность у героя есть. И если она есть, то на каждом 20-м ударе по герою, будет добавлятся способность - защита +10, или больше, взависимости от уровня способности, и затем через 30 секунд удалятся.
Я не спрашивал как кастовать скилл, и как с ним работать.
Я спросил другое:
ПОЧЕМУ? Почему способность сама по себе работает(ОНА ПАССИВНАЯ, и она работает), а обращение к ней тригера(ПРОВЕРКА того что, способность у героя есть), даже если сам тригер не активируется(СОБЫТИЕ, ещё ни разу не произошло, или галочка "изначально включен" убрана), ломает игру?
Прочитай внимательно всё что я писал пожалуйста, у меня просто ощущение что ты не всё прочитал, и не всё скрины посмотрел.
В общем и целом. Подвожу итоги:
Проблема оказалась конкретно в способности. Я так посмотрел, она видимо каким-то образом забаговалась.
Она была сделана на основе способности "каменные доспехи", но конкретно у этой способности почему-то изначальная раса была "наги". Т.е. это уже странно, потому что эта способность изначально от "ночных эльфов". Кроме этого, я отличий от стандарта в ней никаких не видел.
Я ее удалил, создал абсолютно такую же способность, и она работает, всё запускается. Скилл(тригерный) я сделал ровно так как и хотел, никакой ошибки в нём нет и не было в помине, о чем я в принципе подозревал с самого начала. Не знаю с чем связать этот баг, поэтому в принципе вопрос закрываю. Ответ на него я нашёл сам: это баг редактора.
Других вариантов я не вижу.
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
у меня складывается такое ощущение что ваш блокнот не умеет работать с этими символами
попробуйте вместо "Манакост" написать вот это "Манакост" это "Манакост" в UTF8
Символы отсюда xgm.guru/p/100/223668
Вставляю в гугл переводчик, мне выдает какие то непонятные слова и туча исправлений
Если я этот же текст беру и вставляю напрямую в hex редакторе и потом открываю txt в блокноте, то уже текст из блокнота нормально переводится в переводчике
Хм... лет десять назад я мог понять желание сделать карту 480х480 с кучей систем и геймплеем полностью отличающимся от варовского. Тогда не было инструментов, чтобы создавать игру своей мечты, а редактор варика давал некоторую простоту воплощения своих замыслов и некоторое же удобство. Небольшие, на самом деле, но простота и удобство были. Просто другие варианты были ещё хуже в плане простоты и удобства. И ещё интернет у большинства не позволял скачивать слишком уж много. А сейчас? Всем, у кого есть хоть малейшее желание создавать игры предлагают десятки простых и удобных инструментов, часто ещё и бесплатно, обучение, развитые сообщества, в которых можно найти единомышленников, огромное количество ресурсов под лицензией Creative Commons или просто бесплатных для некоммерческого использования на любой вкус (а если не борзеть и пиратить или плагиатить аккуратно - то это количество увеличивается многократно), простоту распространения своего творчества, возможности монетизации и трудоустройства в сфере геймдева - в общем всё, о чём те самые десять лет назад можно было только мечтать. Зачем продолжать мучать варкрафт и себя? Не осуждаю, просто не понимаю.
Согласен, информационный век на дворе, все сделано за нас, учиться надо, но и упрощать работу надо уметь, компьютеры для этого и были изобретены.
Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
quq_CCCP, тогда ну нафиг
это полноценный реверс инженеринг уже будет Asaaaaaar, короче это потребует кучу времени и никто тут этим заниматься скорее всего не будет
думаю даже за платно сложно будет найти того кто согласится убить кучу времени на это
Сделай способности добычи у работников много уровней, и при определённых условиях(здание построено, здание умирает) меняй уровень этой способности у всех рабочих на карте(ну, при создании каждого рабочего, смотри на коилчество таких зданий на карте через отряд, и устанавливай уровень способности у рабочего)
Каждый вопрос заслуживает отдельного обсуждения, а на все стало лень ответ печатать, когда начал.
Печатать реально долго, легче было реализовать примеры в карте:
Кроме последнего пункта, его нужно персонально рассматривать, так как игра не подразумевает использование для юнита двух списков. Например, можно наполнить список построек у юнита всеми зданиями, часть из которых блокировать при открытии одного списка и разблокировать при открытии второго, но это подходит, когда один рабочий. Можно сделать второй список из книги заклинаний, куда добавлены способности на основе игрушечных строений, чтобы было видно карту пути и всё такое, но там для них используется один приказ, то есть всегда одинаковое здание будет при нажатии на любую способность, а ещё нет стоимости золота и дерева, что тоже придётся как-то ваять триггерно. Можно перевоплощать юнита при смене списка в другого, но там тоже сложности, не помню точно какие, вроде бы связаны с расой, так как все строят по-разному.
С точкой сбора всё просто. Способность у игрока не заблокировать, потому нужно забрать её у всех зданий, которые есть на карте, либо будут построены.
Группа из максимум 9 юнитов работает немножко коряво, ранее мы с PT153 находили какой-то вариант, чтобы работало быстро, но лень пользоваться поиском. Вроде каждую 0.01 секунду проверялось количество выбранных юнитов, лишние удалялись из выбора.
Чтобы не было очереди, пришёл в голову лишь вариант с апгрейдом здания. Но у меня реализован просто пример для одного конкретного здания, а для нескольких абстрактных зданий нужно делать текстовым триггером, который будет для каждого здания запускать локальный таймер на нужное время и добавлять анимационный текстаг work. По отмене апгрейда, либо истечению таймера анимационный тег удаляется и создаётся воин, к которому привязывается соответствующий звук. Но есть и другие варианты, типа создавать внутри здания другое, которое реально будет производить юнитов, когда заказал апгрейд, там иная реализация. И не упомянул про затрачиваемые ресурсы. Потребуется забирать/возвращать часть ресурсов при отмене апгрейда.
На примере триггеров и фиолетовых строк в редакторе объектов смотри, как сделано улучшение Бугая в Дренорского бугая.
Конечно, мог бы сделать MUI триггер на GUI для отсутствия очереди, но это было бы громоздко и в техническом смысле уродливо. производящие здания заносились бы в массив, для которого будет массив таймеров, которые будут заноситься в виде событий на истечение таймера в другой триггер, а точнее будет несколько массивов таймеров, по максимальному числу тренируемых юнитов в любом производящем здании.
Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Если цель именно в стоянии, то самый надёжный способ через сравнение координат с некоторой погрешностью. Также можно через отслеживание приказов, реализацию смотреть тут.
Наглядный пример того, что бег в результате агра не отдаёт никакого приказа.
Единственное, что приходит в голову - это дамми-юнит размером чуть больше экрана, с моделью в виде белого прямоугольника, параллельного земле. Триггерно можно сделать его невыбираемым, перемещать в точку, куда направлена камера игрока (если центр модели не видно, то всю модель не видно) и задавать цвет с прозрачностью. А зачем в роликах такая информация?
открою тебе секрет
ни у кого нету юнитов на карте
все юниты создаются триггерно
короче почитал я то что ты пишешь и понял что ты вообще не умеешь работать с редактором
поэтому вот тебе статьи
прочти хотя бы 100 из них
т.к. ответы уже дали вопрос закрываю Maniac_91:
Цикл. От 1 до количества юнитов в группе:
Выбрать случайного юнита из группы
Создать даммика (с ограниченным временем жизни или отрицательной регенерацией)
Приказать последнему созданному юниту (Last created unit) применить заклинание на выбранного юнита (Picked unit)
Удалить выбранного юнита (Picked unit) из группы.
а нафига если можно сделать цикл по группе (выбрать каждого юнита в группе и делать...)
Еще изменение правил оффтопа тоже в процессе, вечером хотел уже запостить новые правила сайта, но вам повезло устроить этот срач именно сейчас. Последний раз прошу закончить его
ссылка
не прерывается приказ почти у любой абилы без цели. В большинстве случаев, останавливаются, чтоб заюзать скилл. А потом продолжают делать те действия, которые оборвал. Типа Рев. Есть длительные касты, например: заговор неуязвимости, он остановится, попрыгает (channeling-анимация), и потом дальше будет идти. Или заклинание крови дракончика. А вот тех, из-за чего еще и не останавливается на ходу, совсем мало
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
И ещё вопрос, как написать свою абилку с нуля? Ссылок на статьи будет вполне достаточно заранее спасибо:)
на ютубе полно видео, в основном попадаются не шарящие челы, но по основам без проблем проведут
когда окрепнешь, то перейдёшь на джасс и начнёшь самостоятельно клепать крутые спеллы
можешь так же обращаться в заклинания на заказ, либо ко мне, может научу чему-нибудь, но всё равно желательно иметь базовые знания гуи
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
» WarCraft 3 / Помощь с триггером WC3
» WarCraft 3 / Телепорт Юнитов
» WarCraft 3 / Не срабатывает условие
» WarCraft 3 / фентези риск (самая первая версия)
» WarCraft 3 / AI в карте
» WarCraft 3 / ИИ и главное здание
» Администрация XGM / Перенос ресурса в проект.
» WarCraft 3 / Проблема с запуском редактора и Jass
» WarCraft 3 / Проблема с запуском карты
» WarCraft 3 / ItemPool
» WarCraft 3 / Код Jass
» Администрация XGM / Смена ника на сайте
» WarCraft 3 / Как взломать карту Warcraft 3?
» WarCraft 3 / Как сделать лимит улучшений?
» WarCraft 3 / Как сделать проверку?
» WarCraft 3 / ИИ и способности
» WarCraft 3 / Массив в магазине.
» WarCraft 3 / Исправление вылета кампании Reforged
» WarCraft 3 / Ледяное дыхание
» Администрация XGM / Не выдаются варны.
» WarCraft 3 / способность "защитная аура"
» WarCraft 3 / пассивная способность "кража маны" при атаке